System and method for automated data retrieval based on data placed in clipboard memory

ABSTRACT

A data retrieval system and method of the invention provide automatic retrieval of information based on data placed into, for example, a Windows™ clipboard. A user highlights and cuts (or pastes) data into the clipboard during execution of an application program. A data retriever program periodically reads the clipboard to determine whether new data has been placed therein. Upon finding new data in the clipboard, the data retriever program determines whether the data or a variation thereof satisfies a predetermined criterion. If the criterion is satisfied, the data retriever program initiates a data-retrieval operation, such as a Web-based search, based on the data. If the criterion is not satisfied, the data retriever program does not perform any data-retrieval action. The data retrieval program does not interfere with the clipboard; any application program sharing the clipboard can use data placed therein, e.g., by a paste operation.

RELATED APPLICATION

This application is a continuation application of co-pending U.S. patentapplication Ser. No. 11/152,515, filed Jun. 14, 2005, titled “System andMethod for Automated Data Retrieval Based on Data Placed in ClipboardMemory”, the entirety of which application is incorporated by referenceherein.

FIELD OF THE INVENTION

The invention relates generally to end-user computer systems. Morespecifically, the invention relates to a system and method for automateddata retrieval based on data placed in clipboard memory.

BACKGROUND

Users of computing devices have at their disposal myriads of applicationprograms for performing untold varieties of tasks. Often a user who isworking with one application program finds he needs certain informationunavailable to the currently running application program in order tocontinue his work. To obtain this information, the user usually needs tosuspend work in the current application program and run a secondapplication program for the specific purpose of obtaining the desiredinformation. In addition to being inconvenient, this practice can beconsiderably inefficient, and the inefficiency can increase when theuser needs to repeat the practice frequently throughout the day.

Consider, for example, a user who responds to email from clients orcustomers who are inquiring about a claim related to their insurancepolicy. In order to respond to one email, the user may realize he needsto review the actual record of the claim, which is stored in a database.To review the record, the user runs an application program that accessesthe database. To obtain the particular record, the user then suppliesthe application program with an identifier, such as a policy number,claim number, account number, etc, that the application program can useto search the database. Even before submitting the identifier, the usermay need to supply a username and password to gain access to thedatabase. After the database returns the sought-for record, then theuser can return to the email application with the obtained informationand prepare a response to the customer who submitted the inquiry. Ifrepeated often, this practice becomes bothersome and inefficient. Thus,there is a need for system and method for retrieving information thatcan avoid the inconvenience and inefficiency of the present practicedescribed above.

SUMMARY

In one aspect, the invention features a computer program product forretrieving information. The computer program product comprises acomputer readable storage medium having computer readable program codeembodied therewith. The computer readable program code comprisingcomputer readable program code configured to make a predeterminedassociation between a test string and execution of an applicationprogram that performs a data-retrieval operation; computer readableprogram code configured to recognize new data written to a shared memorybuffer; computer readable program code configured to determine whetherthe new data written to the memory buffer satisfies the test string;computer readable program code configured to execute the applicationprogram that performs a data-retrieval operation in response to the newdata written to the memory buffer satisfying the test string; andcomputer readable program code configured to retrieve data from adatabase in response to executing the application program that performsa data-retrieval operation.

In another aspect, the invention features a system for retrievinginformation. The system comprises memory including a shared memorybuffer. The memory stores computer readable program code correspondingto a data-retrieval program and computer readable program codecorresponding to an application program that performs a search of adatabase. A processor runs the data-retrieval program to make apredetermined association between a test string and execution of theapplication program that performs a search of a database, to recognizenew data written to the shared memory buffer, to determine whether thenew data written to the memory buffer satisfies the test string, toexecute the application program that performs a search of a database inresponse to the new data written to the memory buffer satisfying thetest string, and to retrieve data from the database in response toexecuting the application program.

In still another aspect, the invention features a method for retrievinginformation. A predetermined association is made between a test stringand execution of an application program that performs a data-retrievaloperation. New data written to a shared memory buffer are recognized anddetermined whether they satisfy the test string. The application programthat performs a data-retrieval operation is executed in response to thenew data written to the memory buffer satisfying the test string. Dataare retrieved from a database in response to executing the applicationprogram that performs a data-retrieval operation.

BRIEF DESCRIPTION OF THE DRAWINGS

The above and further advantages of this invention may be betterunderstood by referring to the following description in conjunction withthe accompanying drawings, in which like numerals indicate likestructural elements and features in various figures. The drawings arenot necessarily to scale, emphasis instead being placed uponillustrating the principles of the invention.

FIG. 1 is a block diagram of an exemplary computing environment in whichaspects of the invention may be implemented.

FIG. 2 is a flow diagram of an embodiment of a process for automaticallyretrieving information based on data placed into a clipboard.

FIG. 3 is a block diagram illustrating an exemplary implementation ofthe process of FIG. 2.

DETAILED DESCRIPTION

The present invention features a data retrieval system and method forautomatically retrieving information based on data placed into aclipboard memory. The clipboard is an embodiment of a memory buffershared by a plurality of application programs. During execution of anapplication program, a user highlights and cuts (or pastes) data intothe clipboard. In accordance with the invention, a data retrieverprogram periodically reads the clipboard to determine whether new datahas been placed therein. Upon finding new data in the clipboard, thedata retriever program determines whether the data or a variationthereof satisfies a predetermined criterion. If the criterion issatisfied, the data retriever program causes execution of an applicationprogram appropriate for performing a data-retrieval operation based onthe data. Execution of this application program causes display of anyretrieved data. If the criterion is not satisfied, the data retrieverprogram does not take any data-retrieval action. Regardless of whetherthe data satisfy the criterion, the data retriever program does notinterfere with the operation of or data placed in the clipboard; anyapplication program that shares the clipboard can still use the dataplaced therein.

FIG. 1 shows an example of a computing environment 10 within which anautomatic data retrieval system of the present invention may beimplemented. The computing environment 10 includes a computing device 12having a processor 14 in communication with system memory 16 over asystem bus 18. Exemplary embodiments of the computing device 12 include,but are not limited to, a personal computer (PC), a Macintosh computer,a workstation, a laptop computer, a hand-held device such as a personaldigital assistant (PDA) and a cellular phone, and a network terminal.

The system memory 16 includes non-volatile computer storage media, suchas read-only memory (ROM) 20, and volatile computer storage media, suchas random-access memory (RAM) 22. Typically stored in the ROM 20 is abasic input/output system (BIOS) 24, which contains program code forcontrolling basic operations of the computing device 12, includingstart-up of the computing device and initialization of hardware. Storedwithin the RAM 22 are program code and data 26. Program code includes,but is not limited to, application programs 28, program modules 30, adata retriever program 32, and an operating system 34 (e.g., Windows 95,Windows 98, Windows NT 4.0, Windows XP, Windows 2000, and Macintosh). Inone embodiment, the data 26 includes a registry, which is a databasethat stores hardware and software configuration, user preferences, andsetup information for the computing device. The registry can store,e.g., the username and password required during the execution of aparticular application program 28 or for accessing a local or remotedata store or database. Such information can be stored in encrypted formto prevent a viewer of the registry from learning this information.

Application programs 28 on the computing device 12 include, but are notlimited to, an electronic mail client program, browser software, aninstant messaging program, and office applications, such as aspreadsheet, a word processor, and slide presentation software. Eachapplication program 28 can be a proprietary or commercially availableprogram, such as Lotus NOTES™ for email, Lotus Same Time™ for instantmessaging, Microsoft Internet Explorer™ for browser software, andMicrosoft WORD™ for word processing. The browser software canincorporate a JAVA™ virtual machine for interpreting JAVA™ code (i.e.,applets, scripts) and applications.

A portion of the RAM 22 serves as a clipboard 36. The clipboard 36 is atemporary storage buffer for storing various types of data, for example,text, graphics, sound, and video. Several of the application programs 28share the clipboard 36, that is, data cut or copied to the clipboard 36from one application program 28 can be copied (i.e., pasted) intoanother application program 28 from the clipboard 36. For example,Windows™ operating systems use the clipboard 36 to share the data amongat least the Excel™, PowerPoint™, Word™, and Outlook™ applicationprograms.

Typically, the clipboard 36 operates in the background, that is, dataplaced in the clipboard 36 are not visible to the user, althoughdisplaying the clipboard contents is a selectable optional feature ofsome application programs 28. In a preferred embodiment, the clipboard36 holds a single unit of information (i.e., data cut or copiedtogether). Each subsequent cut or copy of information from within anapplication program 28 (that shares the clipboard 36) overwrites theprevious contents of the clipboard 36. Terminating execution of anapplication program 28 may erase the contents of the clipboard 36.

In general, the data retriever program 32 is in communication with theclipboard 36 to read periodically the clipboard contents and to performan action based upon those contents, as described in more detail below.The data retriever program 32 can be written using any one of a varietyof programming languages, including, but not limited to, Visual Basic.

The system bus 18 connects the processor 14 to various other componentsof the computing device 12, including a user-input interface 38, amemory interface 40, a peripheral interface 42, a video interface 44, alocal network interface 46, and a wide-area network interface 48.Exemplary implementations of the system bus 18 include, but are notlimited to, a Peripheral Component Interconnect (PCI) bus, an IndustryStandard Architecture (ISA) bus, an Enhanced Industry StandardArchitecture (EISA) bus, and a Video Electronics Standards Association(VESA) bus.

Over a wire or wireless link 52, the user-input interface 38 is incommunication with one or more user-input devices 50, e.g., a keyboard,a mouse, trackball, touch-pad, touch-screen, microphone, joystick, bywhich a user can enter information and commands into the computingdevice 12. The memory interface 40 is in communication with removableand non-removable non-volatile storage media 54. Examples of removableand non-removable non-volatile storage media include, but are notlimited to, hard disks, optical disks such as CD ROMs, magneticdiskettes, and flash memory cards. Peripheral devices 56, e.g.,printers, speakers, scanners, connect to the system bus 18 through theperipheral interface 42 and a display monitor 58 connects to the systembus 18 through the video interface 44.

The computing device 12 can be part of a network environment. Examplesof network environments include, but are not limited to, local-areanetworks (LAN), metro-area networks (MAN), and wide-area networks (WAN),such as the Internet or World Wide Web. For connecting to a remotesystem 60 on a LAN, the computing device 12 can use the local networkinterface 46 over a logical connection 62. To connect to a remote system64 on a WAN, the computing device 12 can use the wide-area networkinterface 48 over a logical connection 66. Examples of remote systems60, 64 include, but are not limited to, Web servers, e-mail servers,application servers, directory servers, instant messaging servers,routers, and personal computers. The computing device 12 can connect tothe remote system 60, 64 through one of a variety of connections, suchas standard telephone lines, digital subscriber line, LAN or WAN links(e.g., T1, T3), broadband connections (Frame Relay, ATM), and wirelessconnections (e.g., 802.11(a), 802.11(b), 802.11(g)).

FIG. 2 shows an embodiment of a process 100 for retrieving informationbased on data placed onto the clipboard 36. In describing the process100, reference is also made to FIG. 1. The order of steps is exemplary;it is to be understood that one or more of the steps can occur in adifferent order than that shown.

At step 104, the processor 14 (FIG. 1) starts execution of the dataretriever program 32. Configuration of the computing device 12 can causethe data retriever program 32 to start executing when the computingdevice 12 starts up. Alternatively, a user can deliberately launch thedata retriever program at any time after start-up. The data retrieverprogram 32 can run as a background process, unseen by a user of thecomputing device 12, or in the foreground (i.e., visible and, in oneembodiment, presenting the user with a user interface). Duringexecution, the data retriever program 32 reads (step 108) the contentsof the clipboard 36. A timer function within the data retriever program32 causes the reading of the clipboard 36 to occur periodically (e.g.,every second).

At step 112, the user executes an application program 28, such as a wordprocessor. During execution of the application program 28, the userselects (step 116) a portion of displayed text, e.g., by highlightingthe text using an input-pointing device, such as a mouse. Then the userperforms a cut or copy operation to place (step 120) the selected textportion into the clipboard 36. During the next read of the clipboard 36,the data retriever program 32 finds (step 124) the text portion andgenerates a copy thereof.

The copy of the text portion operates as a candidate string, i.e., adata string to be compared with certain criterion to determine whether adata retrieval operation is to take place. Program code of the dataretriever program 32 parses (step 128) and, possibly, modifies thecandidate string. This preprocessing can remove certain characters fromor add certain characters (or both) to the candidate string in order toattempt to place the candidate string into a format tailored for makinga comparison with predetermined criterion. Modification of the candidatestring occurs in a separate memory; the contents of the clipboard 36 areunchanged by the manipulations of the candidate string by the dataretriever program 32.

For example, the data retriever program 32 can remove spaces, dashes,and other non-alphanumeric characters from the candidate string in orderto compare the candidate string with an alphanumeric test string (i.e.,predetermined criterion). As another example, the data retriever program32 may prepend or append certain characters to the candidate string. Toillustrate by example, consider that the candidate string is aseven-digit number and the data retriever program 32 is designed to testfor telephone numbers. Upon determining that the candidate string is aseven-digit number, the data retriever program 32 can prepend a defaultarea code to the candidate string before comparing the candidate stringwith the test string. In addition, the data retriever program 32 can trya list of default area codes in order to find one that matches the teststring. An objective of the preprocessing is to permit a degree offlexibility to the expression of the text portion as displayed in theapplication program 28.

At step 132, the data retriever program 32 compares the resultingpreprocessed candidate string against predefined criteria (i.e., one ormore test strings). The data retriever program 32 can employ varioustest strings in an attempt to find a match for the preprocessedcandidate string. Each test string is associated with and tailored for aparticular application program. The data retriever program 32 can bewritten to work with multiple application programs, with the multipletest strings corresponding to the same or to different ones of theapplication programs. The following exemplary pseudo-code illustrates,in an oversimplified manner, a relationship of test strings toapplication programs defined by the data retriever program. In thisexample, “candidate string” represents a copy (modified or unmodified)of the text portion placed in the clipboard and the test strings are“ABC”, “DEF”, “GHI”, and “JKL”.

if candidate_string = “ABC” { run application program “XYZ” } else ifcandidate_string = “DEF” { run application program “UVW” } else ifcandidate_string = “GHI” { run application program “RST” } else ifcandidate_string = “JKL” { run application program “RST” } else done

If the preprocessed candidate string matches one of the test strings,then the data retriever program 32 automatically initiates (step 136) adata retrieval operation, e.g., by launching execution of theapplication program associated with the matched test string, forretrieving information. The data retriever program 32 can be written sothat the candidate string can match more than one test string, andconsequently cause execution of more than one data retrieval operationbased on the data placed in the clipboard.

When the criterion is matched, the data retriever program 32 can ask theuser to choose whether to activate the data retrieval functionality. Ifthe user does not select the data retrieval functionality provided bythe data retriever program 32, application programs 28 can still use thestandard cut-and-paste functionality of the clipboard 36. The dataretriever program 32 can also ask the user to select which database isto be searched (e.g., choose between an archive or active database).

Upon executing the selected application program, the data retrieverprogram 32 can supply the candidate string, modified or unmodified, asan input parameter. The input parameter serves to instruct the selectedapplication program as to type of information to be retrieved (i.e.,candidate string can serve as a search term). For example, thepreprocessed candidate string may correspond to a tracking number for apackage in transit, and a data store maintains records (e.g., thetracking status) of various packages. The data retriever program 32supplies the tracking number to the selected application program, whichuses the number as a search parameter with which to search the datastore. In another embodiment, the data retriever program 32 can use thestring to create or obtain a search parameter to be supplied to theapplication program (e.g., using the candidate string as an index to alookup table).

In some embodiments, execution of the selected application program oraccess to the data store requires user authentication. Before launchingthe selected application program (in step 136), the data retrieverprogram 32 can access the registry to obtain a username and passwordthat are stored in the registry for this purpose. The data retrieverprogram 32 then decrypts and submits the username and password to theselected application program as input parameters. At step 140, theselected application program obtains and displays the data satisfyingthe search term or terms.

If the data retriever program 32 finds no match for the preprocessedcandidate string, then the contents of the clipboard 36, at step 144,are ignored. The information on the clipboard 36 remains undisturbed bythe data retriever program 32, and thus remains available for use byother application programs that share the clipboard 36.

Because the data retriever program 32 periodically reads the contents ofthe clipboard 36, the data retriever program 32 can come across the sametext portion on successive reads and consequently cause the same data tobe retrieved. To prevent repetitious data-retrieval actions based onunchanged clipboard contents, the data retriever program 32 employs aflag. The data retriever program 32 sets the flag after reading theclipboard 36 contents for the first time. While the flag remains set,the data retriever program 32 does not perform a data retrievaloperation based on the clipboard contents. The flag is reset when theuser places new information on the clipboard 36 or the clipboard 36 iscleared of contents. Reset of the flag enables the data retrieverprogram 32 to initiate data retrieval operations again based thecontents of the clipboard, provided such contents satisfy thepredetermined criterion.

FIGS. 3A-3C illustrate the process 100 of FIG. 2 by example. Referringto FIG. 3A, the user is running a word processor application program28-1. On the display monitor of the computing device appears a graphicalwindow within which a document called “records.doc” is displayed. Thedocument includes a table comprised of two columns of information. Thefirst column lists case numbers and the second column lists companynames. The user highlights a text portion 150 (here, case number“ABE-0510.1”), and causes the highlighted text portion 150 to be placedinto the clipboard 36, as indicated by arrow 152.

Referring now to FIG. 3B, the data retriever program 32 reads theclipboard 36, as indicated by arrow 154 and finds the text portion“ABE-0510.1”. After preprocessing a copy of the text portion, the dataretriever program 32 produces a preprocessed candidate string of“ABE05101” (i.e., with the dash and decimal removed from the copy of thetext portion). In this example, the preprocessed candidate stringmatches a test string associated with performing a web-based data query.Accordingly, the data retriever program 32 launches a browserapplication program 28-2, as shown by arrow 156.

Referring now to FIG. 3C, launch of the browser application program 28-2includes an http: request directed to a specific web site on theInternet, as shown by arrow 158. The http: request includes a databasequery command and the preprocessed candidate string “ABE05101” as aninput parameter for performing the database query at the web site. Ifthe request contains sensitive information, such as a password, thecommunication can occur over a secure link (e.g., https:). A remotedatabase server 66-1 receives the http: request, performs the databasequery, and returns the results (arrow 160) to the computing device. Theresults are displayed in the browser window 162 on the monitor of thecomputing device, preferably in a top layer or “pop-up” window thatalerts the user that a data retrieval operation has occurred.Consequently, in accordance with the principles of the invention, a userof the computing device is able to retrieve data by the act of placingtext onto the clipboard.

In the previous example, the data retriever program 32 causes theretrieval of data from a remote data store. Other embodiments of theinvention can cause a data retrieval operation of a local data store.For example, consider a user of a hand-held device (e.g., a personaldigital assistant or PDA) who is writing a memo. During the writing ofthe memo, the user records the name of an individual and wants to insertthe person's phone number. The user can highlight the name of the personin the memo and copy the name to the clipboard of the PDA. For thisexample, consider that the data retriever program is customized to lookfor names and then to execute an application program that searches a“contacts” database, stored locally on the PDA, whenever a name is found(i.e., matches a test string). A contacts database keeps records ofindividuals, including information about their businesses, addresses,and business, mobile and home telephone numbers. By copying the nameinto the clipboard, the user causes a contacts record to appear in thedisplay from which the user can obtain and place the desired informationinto the memo.

In a preferred embodiment, the user is unaware that the data retrieverprogram 32 is running in the background. In another embodiment, the dataretriever program 32 executes in the foreground and presents the userwith a user interface. Through the user interface, a user can submit anidentifier directly to the data retriever program 32. The data retrieverprogram 32 attempts to match the user-submitted identifier with a teststring and, upon finding a match, initiates a data-retrieval operationassociated with the matched test string.

The present invention may be implemented as one or morecomputer-readable software programs embodied on or in one or morearticles of manufacture. The article of manufacture can be, for example,any one or combination of a floppy disk, a hard disk, hard-disk drive, aCD-ROM, a DVD-ROM, a flash memory card, an EEPROM, an EPROM, a PROM, aRAM, a ROM, or a magnetic tape. In general, any standard or proprietary,programming or interpretive language can be used to produce thecomputer-readable software programs. Examples of such languages includeC, C++, Pascal, JAVA, BASIC, Visual Basic, and Visual C++. The softwareprograms may be stored on or in one or more articles of manufacture assource code, object code, interpretive code, or executable code.

Although the invention has been shown and described with reference tospecific preferred embodiments, it should be understood by those skilledin the art that various changes in form and detail may be made thereinwithout departing from the spirit and scope of the invention as definedby the following claims. For example, the invention has been describedprimarily with reference to a clipboard, which various operating systemsuse to facilitate the transfer of data from one application program toanother. The invention may be practiced with a memory buffer other thanthe clipboard, provided multiple application programs can share accessto that memory buffer and use the memory buffer to transfer data fromone application program to another. As another example, variousembodiments of the data retriever program have been described to launchan application program—for performing a data retrieval operation—when acandidate string matches a test string. It is to be understood thatother embodiments of the data retrieval program can be designed toperform actions other than launching an application program, forexample, terminating a process, issuing an operating system command,controlling hardware. Yet another example, the invention has beendescribed primarily with reference to text as the type of data placedonto the clipboard and compared with test strings. Other embodiments ofthe data retriever program may be written to use other types of data(e.g., images).

What is claimed is:
 1. A computer program product for retrievinginformation, the computer program product comprising: a non-transitorycomputer readable storage medium having computer readable program codeembodied therewith, the computer readable program code comprising:computer readable program code configured to make a predeterminedassociation between a test string and execution of an applicationprogram that performs a data-retrieval operation involving a searchthrough a database of data records; computer readable program codeconfigured to automatically periodically read contents of a sharedmemory buffer to identify a candidate string being unmodified of newdata written to the shared memory buffer; computer readable program codeconfigured to determine whether the unmodified candidate string writtento the memory buffer satisfies the test string; computer readableprogram code configured to launch execution of the application programto perform the data-retrieval operation in response to the unmodifiedcandidate string written to the memory buffer satisfying the teststring; computer readable program code configured to generate a searchterm from the unmodified candidate string written to the shared memorybuffer; computer readable program code configured to pass the unmodifiedcandidate string as the search term as an input parameter to theapplication program for use by the application program to perform thedata-retrieval operation; and computer readable program code configuredto present a data record retrieved from the database of data records inresponse to the execution of the application program.
 2. The computerprogram product of claim 1, further comprising computer readable programcode configured to retrieve a username and password for use inauthenticating a user in order to perform the data-retrieval operation.3. The computer program product of claim 1, wherein the shared memorybuffer is a clipboard.
 4. The computer program product of claim 1,further comprising computer readable program code configured to ignorethe unmodified candidate string of new data written to the shared memorybuffer if the unmodified candidate string does not satisfy the teststring.
 5. The computer program product of claim 1, wherein the computerreadable program code configured to launch execution of the applicationprogram that performs a data-retrieval operation includes computerreadable program code configured to execute a web browser, to retrieve aweb page based on the unmodified candidate string of new data written tothe shared memory buffer, and to display the retrieved web page.
 6. Thecomputer program product of claim 1, further comprising computerreadable program code configured to make a predetermined associationbetween each test string of a plurality of test strings and execution ofone or more particular application programs of a plurality ofapplication programs.
 7. A computing system for retrieving information,comprising: memory including a shared memory buffer, the memory storingcomputer readable program code corresponding to a data-retrieval programand computer readable program code corresponding to an applicationprogram that performs a search of a database of data records; aprocessor running the data-retrieval program to make a predeterminedassociation between a test string and execution of the applicationprogram that performs a search of a database, to automaticallyperiodically read contents of the shared memory buffer to identify acandidate string being unmodified of new data written to the sharedmemory buffer, to determine whether the unmodified candidate stringwritten to the memory buffer satisfies the test string, to launchexecution of the application program that performs a search of adatabase of data records in response to the unmodified candidate stringwritten to the memory buffer satisfying the test string, to generate asearch term from the unmodified candidate string written to the sharedmemory buffer, to pass the unmodified candidate string as the searchterm as an input parameter to the application program for use by theapplication program to perform the search of the database, and toretrieve a data record from the database of data records in response tothe execution of the application program.
 8. The computing system ofclaim 7, wherein the processor, in response to the unmodified candidatestring of new data written to the memory buffer satisfying the teststring, is programmed to retrieve a username and password for use inauthenticating a user in order to perform the data-retrieval operation.9. The computing system of claim 7, wherein the shared memory buffer isa clipboard.
 10. The computing system of claim 7, wherein the processoris programmed to ignore the unmodified candidate string written to theshared memory buffer if the unmodified candidate string does not satisfythe test string.
 11. The computing system of claim 7, wherein executionof the application program launches a web browser, retrieves a web pagebased on the unmodified candidate string of new data written to theshared memory buffer, and displays the retrieved web page.
 12. Thecomputing system of claim 7, wherein the data-retrieval program makes apredetermined association between each test string of a plurality oftest strings and execution of one or more particular applicationprograms of a plurality of application programs.
 13. A method forretrieving information, comprising: making a predetermined associationbetween a test string and execution of an application program thatperforms a data-retrieval operation involving a search through adatabase of data records; automatically periodically reading contents ofa shared memory buffer to identify a candidate string being unmodifiedof new data written to the shared memory buffer; recognizing theunmodified candidate string written to the shared memory buffer;determining whether the unmodified candidate string written to thememory buffer satisfies the test string; launching execution of theapplication program that performs a data-retrieval operation in responseto the unmodified candidate string written to the memory buffersatisfying the test string; generating a search term from the unmodifiedcandidate string written to the shared memory buffer; passing theunmodified candidate string as the search term as an input parameter tothe application program for use by the application program to performthe data-retrieval operation; and retrieving a data record from thedatabase of data records in response to executing the applicationprogram that performs a data-retrieval operation.
 14. The method ofclaim 13, further comprising retrieving a username and password for usein authenticating a user in order to perform the data-retrievaloperation.
 15. The method of claim 13, wherein the shared memory bufferis a clipboard.
 16. The method of claim 13, further comprising ignoringthe unmodified candidate string of new data written to the shared memorybuffer if the unmodified candidate string does not satisfy the teststring.
 17. The method of claim 13, wherein launching execution of theapplication program includes launching a web browser, retrieving a webpage based on the unmodified candidate string of new data written to theshared memory buffer, and displaying the retrieved web page.
 18. Acomputer system, comprising: means for making a predeterminedassociation between a test string and execution of an applicationprogram that performs a data-retrieval operation involving a searchthrough a database of data records; means for automatically periodicallyreading contents of a shared memory buffer to identify a candidatestring being non-modified of new data written to the shared memorybuffer; means for recognizing the unmodified candidate string of newdata written to the shared memory buffer; means for determining whetherthe unmodified candidate string of new data written to the memory buffersatisfies the test string; means for launching execution of theapplication program to perform the data-retrieval operation in responseto the unmodified candidate string written to the memory buffersatisfying the test string; means for generating a search term from theunmodified candidate string written to the shared memory buffer; meansfor passing the unmodified candidate string as the search term as aninput parameter to the application program for use by the applicationprogram to perform the data-retrieval operation; and means forretrieving a data record from the database of data records in responseto executing the application program that performs the data-retrievaloperation.
 19. The computer program product of claim 1, furthercomprising computer readable program code configured to automaticallyperiodically read contents, at one second intervals, of a shared memorybuffer to identify the candidate string of new data written to theshared memory buffer.
 20. The computing system of claim 7, wherein theprocessor runs the data-retrieval program to automatically periodicallyread contents, at one second intervals, of the shared memory buffer toidentify the unmodified candidate string of new data written to theshared memory buffer.
 21. The method of claim 13, further comprisingautomatically periodically reading contents, at one second intervals, ofthe shared memory buffer to identify the unmodified candidate string ofnew data written to the shared memory buffer.